package servico;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.JCheckBox;

import skin.LookAndFeelSelector;

import javax.swing.JButton;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.JList;
import javax.swing.JScrollPane;

public class FrmCadastroServico extends JFrame {

	private JPanel contentPane;
	private JLabel lblCadastroDeServicos;
	private JLabel lblServico;
	private JLabel lblPreco;
	private JLabel lblTmpMdServico;	
	private JTextField txtServico;
	private JTextField txtPreco;
	private JTextField txtTmpMdServico;
	private JPanel panelOpcoesServicos;
	private JCheckBox chckbxEncaixavel;
	private JCheckBox chckbxServicoMasculino;
	private JCheckBox chckbxServicoFeminino;
	private JPanel panelProdutosUtilServico;
	private JButton btnIncluir;
	private JButton btnExcluir;
	private JScrollPane scrollPaneListProdutosSelecionados;
	private JList listProdutosSelecionados;
	private DefaultListModel listModel;
	private JButton btnSalvar;
	private JButton btnCancelar;
	private ControlServico controlServico;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					LookAndFeelSelector.lookAndFeelNimbus();
					FrmCadastroServico frame = new FrmCadastroServico();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public FrmCadastroServico() {
		
		controlServico = new ControlServico();		
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 650, 460);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		lblCadastroDeServicos = new JLabel("Cadastro de Servi\u00E7os");
		lblCadastroDeServicos.setFont(new Font("Tahoma", Font.PLAIN, 15));
		lblCadastroDeServicos.setBounds(246, 20, 147, 16);
		contentPane.add(lblCadastroDeServicos);
		
		lblServico = new JLabel("Servi\u00E7o :");
		lblServico.setBounds(23, 73, 79, 21);
		contentPane.add(lblServico);
		
		txtServico = new JTextField();
		txtServico.setBounds(177, 69, 122, 28);
		contentPane.add(txtServico);
		txtServico.setColumns(10);
		
		lblPreco = new JLabel("Pre\u00E7o :");
		lblPreco.setBounds(335, 72, 55, 16);
		contentPane.add(lblPreco);
		
		txtPreco = new JTextField();
		txtPreco.setBounds(395, 66, 122, 28);
		contentPane.add(txtPreco);
		txtPreco.setColumns(10);
		
		lblTmpMdServico = new JLabel("Tempo M\u00E9dio do Servi\u00E7o :");
		lblTmpMdServico.setBounds(23, 126, 147, 16);
		contentPane.add(lblTmpMdServico);
		
		txtTmpMdServico = new JTextField();
		txtTmpMdServico.setBounds(177, 120, 122, 28);
		contentPane.add(txtTmpMdServico);
		txtTmpMdServico.setColumns(10);
		
		panelOpcoesServicos = new JPanel();
		panelOpcoesServicos.setBorder(new TitledBorder(null, "Op\u00E7\u00F5es do Servi\u00E7o", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panelOpcoesServicos.setBounds(447, 173, 165, 165);
		contentPane.add(panelOpcoesServicos);
		panelOpcoesServicos.setLayout(null);
		
			chckbxEncaixavel = new JCheckBox("Encaixavel");
			chckbxEncaixavel.setBounds(23, 33, 104, 18);
			panelOpcoesServicos.add(chckbxEncaixavel);
			
			chckbxServicoMasculino = new JCheckBox("Servi\u00E7o Masculino");
			chckbxServicoMasculino.setBounds(23, 77, 133, 18);
			panelOpcoesServicos.add(chckbxServicoMasculino);
			
			chckbxServicoFeminino = new JCheckBox("Servi\u00E7o Feminino");
			chckbxServicoFeminino.setBounds(23, 121, 133, 18);
			panelOpcoesServicos.add(chckbxServicoFeminino);
		
		panelProdutosUtilServico = new JPanel();
		panelProdutosUtilServico.setBorder(new TitledBorder(null, "Produtos Utilizados no Servi\u00E7o", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panelProdutosUtilServico.setBounds(23, 173, 412, 165);
		contentPane.add(panelProdutosUtilServico);
		panelProdutosUtilServico.setLayout(null);
		
			btnIncluir = new JButton("Incluir");
			btnIncluir.setBounds(42, 43, 90, 28);
			btnIncluir.addActionListener(new ActionListener() {				
				@Override
				public void actionPerformed(ActionEvent e) {
					if(e.getSource() == btnIncluir){
						new FrmTabelaProdutos().setVisible(true);
					}					
				}
			});
			panelProdutosUtilServico.add(btnIncluir);
			
			btnExcluir = new JButton("Excluir");
			btnExcluir.setBounds(42, 91, 90, 28);
			panelProdutosUtilServico.add(btnExcluir);
			
			scrollPaneListProdutosSelecionados = new JScrollPane();
			scrollPaneListProdutosSelecionados.setBounds(154, 32, 233, 98);
			panelProdutosUtilServico.add(scrollPaneListProdutosSelecionados);
			
			listModel = new DefaultListModel();			
			listProdutosSelecionados = new JList(listModel);
			scrollPaneListProdutosSelecionados.setViewportView(listProdutosSelecionados);
		
		btnSalvar = new JButton("Salvar");
		btnSalvar.setBounds(33, 355, 107, 44);
		btnSalvar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {				
				
				JOptionPane.showMessageDialog(null, chckbxServicoMasculino.isSelected());
				controlServico.adicionarServico(txtServico.getText(), 
												txtTmpMdServico.getText(), 
												Double.parseDouble(txtPreco.getText()), 
												chckbxServicoMasculino.isSelected(), 
												chckbxServicoFeminino.isSelected(), 
												chckbxEncaixavel.isSelected(), 
												Arrays.asList(listModel.toArray()));
				
			}
		});
		contentPane.add(btnSalvar);
			
		btnCancelar = new JButton("Cancelar");
		btnCancelar.setBounds(188, 355, 107, 44);
		contentPane.add(btnCancelar);
	}
}
